
# Makefile内容通常由以下部分组成
# <目标>: <前置依赖>
#     <需要执行的命令>
# 链接的命令:  -gcc <源文件> -o <目标文件> -I <路径>
# 编译的命令： ./<目标文件>
# 清理的命令:  rm <文件或目录>

log:=Thirdparty/log/log.c Thirdparty/log/log.h
log_test: Test/log_test.c $(log)
	-gcc $^ -o $@ -I Thirdparty
	-./$@
	-rm $@

cjson:=Thirdparty/cJSON/cJSON.c Thirdparty/cJSON/cJSON.h
cjson_test: Test/cjson_test.c $(cjson) $(log)
	-gcc $^ -o $@ -I Thirdparty
	-./$@
	-rm $@

time:=App/App_Common.c App/App_Common.h
time_test: Test/time_test.c $(time) $(log)
	-gcc $^ -o $@ -I Thirdparty -I App
	-./$@
	-rm $@

message:=App/App_Message.c App/App_Message.h
message_test: Test/message_test.c $(message) $(log)
	-gcc $^ -o $@ -I Thirdparty -I App
	-./$@
	-rm $@


mqtt_test: Test/mqtt_test.c  
	-gcc $^ -o $@ -l paho-mqtt3c
	-./$@
	-rm $@
App_mqtt:=App/App_Mqtt.c App/App_Mqtt.h
app_mqtt_test: Test/app_mqtt_test.c $(App_mqtt) $(log) 
	-gcc $^ -o $@ -l paho-mqtt3c -I Thirdparty -I App
	-./$@
	-rm $@

pool:=App/App_Pool.c App/App_Pool.h
app_pool_test: Test/app_pool_test.c $(pool) $(log) 
	-gcc $^ -o $@ -I Thirdparty -I App
	-./$@
	-rm $@
# -I 给gcc指定include path
# $^ 表示所有的依赖文件
# $@ 表示目标文件
# -o 表示输出文件
# -l 表示链接的库
# -g 表示调试信息

